<%-- 
    Document   : modificar-folio
    Created on : 14/09/2010, 05:55:57 PM
    Author     : Eduardo
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.util.*" %>
<%@page import="java.io.*" %>
<%@page import="pe.gob.pnp.digitalizar.beans.*" %>
<%@page import="pe.gob.pnp.digitalizar.despachadores.*" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


<jsp:useBean id="documento" class="pe.gob.pnp.digitalizar.beans.DocumentoDigitalizadoBean" scope="request"/>
<jsp:setProperty name="documento" property="*"/>
<%
    int usuario = Integer.parseInt(request.getParameter("usuario"));
    int idDocumento = 0;
    List<FolioBean> listaFoliosAgregados = (List<FolioBean>) session.getAttribute("lista-folios-agregados");
    documento.setNroFolios(listaFoliosAgregados.size());
    boolean modificando = Integer.parseInt(request.getParameter("modificando")) == 1;
    if (modificando) {
        ExpedienteDespachador.actualizarDocumentoDigitalizado(documento);
    } else {
        idDocumento = ExpedienteDespachador.agregarDocumentoDigitalizado(documento, usuario);
        documento.setId(idDocumento);
    }
    for(FolioBean folio : listaFoliosAgregados){
        DocumentoDigitalizadoBean doc = new DocumentoDigitalizadoBean();
        doc.setId(documento.getId());
        folio.setDocumento(doc);
        DocumentoDespachador.modificarFolio(folio, usuario);
    }

    Properties prop = new Properties();
    FileInputStream in = new FileInputStream(application.getRealPath("/WEB-INF/classes/pe/gob/pnp/digitalizar/config.properties"));
    prop.load(in);
    in.close();
    int otros = Integer.parseInt(prop.getProperty("tipoDocumento.otros"));
    documento.setIdTipoDocumento(otros);
    DocumentoDespachador.obtenerDocumentoOtros(documento);
    List<FolioBean> folios = DocumentoDespachador.obtenerFolios(documento);
    List<FolioBean> listaFoliosDisponibles = (List<FolioBean>) session.getAttribute("lista-folios-disponibles");
    List<FolioBean> listaFoliosPorEliminar = new ArrayList<FolioBean>();
    for(FolioBean folio : listaFoliosDisponibles){
        if (!folios.contains(folio)){
            listaFoliosPorEliminar.add(folio);
        }
    }
    //quitar folios agregados
    for(FolioBean folio : listaFoliosPorEliminar){
        DocumentoDigitalizadoBean doc = new DocumentoDigitalizadoBean();
        doc.setId(documento.getId());
        folio.setDocumento(doc);
        DocumentoDespachador.modificarFolio(folio, usuario);
    }

    session.removeAttribute("lista-folios-disponibles");
    session.removeAttribute("lista-folios-agregados");
%>
{
    success: true
}